1. Field of the Invention
The present invention relates to editing and/or reproducing of packet-structured data, and more particularly, to a method of temporary deletion, search, restoration, and permanent deletion of a stream object and a recording medium for storing additional information for restoration of the stream object divided by temporary deletion.
2. Description of the Related Art
In general, content is formed by a stream object (SOB), and an SOB is formed by a plurality of predetermined stream object units (SOBUs) and managed in each SOBU unit. At this time, the stream object can be, for example, data which are recorded while a user records something from the beginning to the end. More particularly, an episode of a miniseries or a film can be recorded in one stream object. Since a program can be used instead of content, the word “program” will be used for explanation, hereinafter.
FIG. 1 illustrates an example of the relationship between data and search information used in reading wanted data in an already-recorded stream object. When a user records a program, just one program can be recognized to the user's eyes, but a cell, which provides a meaningful search tool to the user, and stream object information (SOBI), which links information in a cell to actual data, exist internally.
Particularly as for a stream object, in order to improve the physical properties of recording media and the performance and/or management-easiness and efficiency of reproducing/editing devices, data are grouped in a predetermined unit (stream object unit, SOBU) for management, and information used in accessing an SOBU is stored in a mapping list (MAPL) of SOBI. The SOBU number begins from “1” and the MAPL can have a plurality of items. These items have information of increment application packet arrival time (IAPAT), which represents the time difference between each arrival time of first packets of two SOBUs.
In order to randomly access a program recorded in a storage device, search information on a program to be accessed is separately prepared and used, in general. As search information, information on data location in a program, program reproducing time, and program recording time are usually used. When a recorded program is a film, characteristic scenes can be used as search information. Here, a program recording time will be used as an example of search information.
Search information can have diverse formats and, generally data are grouped in a big bulk as a unit of a searching object in order to reduce the volume of search information and enable fast search. Such bulk-grouping is usually done in a layered structure. FIG. 1 illustrates an example of a three-layered structure.
When search information is made in the form of a layered structure, information on an upper layer includes information on a normal immediately-lower layer. A cell exist as an upper layer in search information which is included in a program, a stream object exists below the cell, and stream object units exist below the stream object. Each layer of search information can have diverse relationships and, here, the following is assumed.
A program has one or more cells. A cell has one stream object. A stream object has one or more stream object units. A stream object unit has one or more items of data.
FIG. 1 shows a case where Program_org is formed with Cell_org; Cell_org is formed with an SOB; the SOB is formed with SOBU1, SOBU2, and SOBU3, and each SOBU is formed with data. That is, Program_org has an information structure storing a cell, the cell has an information structure storing SOBs, and each SOB has an MAPL, the information structure storing SOBUs.
In addition, in order to show the range of a stream object which search information manages, the first data arrival time of a cell (SC_S_APAT) and the last data arrival time of the cell (SC_E_APAT) are included in cell information, and the first data arrival time of a stream object (SOB_S_APAT) and the last data arrival time of the stream object (SOB_E_APAT) are included in stream object information.
A temporary erase (TE) flag represents that the stream object is temporarily deleted. Here, temporary deletion means that after a user deletes all or some parts of a program, a chance to cancel the deletion is given to the user. Unlike this temporary erase, permanent deletion means a deletion which does not provide an opportunity for canceling the deletion.
Each item of MAPL are presented by an incremental AP arrival time which means the incremental packet arrival time of each corresponding SOBU. Here, AP is an abbreviated form of application packet, and means packet-structured data. IAPAT, the incremental packet arrival time of an SOBU is defined as follows.
Search information expressed in time units has respective precision degrees depending on application fields. As for a moving picture experts group-2 (MPEG-2) system, time is counted and used in units of 27 MHz. In FIG. 1, data is expressed in units of 0.1. In order to reduce the length of the search information MAPL, an SOB is assumed to express time in units of 1.0. When this is applied to a 48-bit register for expressing time, equal to or greater than point b18, shown in FIG. 2, means an integer part and less than point b18 indicates a decimal fraction. The location of b18, immediately upper decimal fractions, will be expressed as MTU_SHIFT.
In addition, each item of MAPL in FIG. 1 has values of 3, 1, and 1, respectively, which are based on the following definition of MAPL. As a method for determining IAPAT of each SOBU, different methods are used according to the location of an SOBU in an SOB, that is, whether or not an SOBU is the last SOBU in an SOB.
For example, when M SOBUs exist in one SOB, the accumulated value of IAPATs from the first to the i-th SOBU for i-th SOBU(i) except the last SOBU must not be greater than the first AP arrival time of SOBU(i+1) by more than 1. IAPAT is assumed to be an integer expressed in units of 1.0, and the initial value of accumulation is assumed to be “0”. This is expressed in the following equation 1.SOBU—S—APAT(i+1) SUM—IAPAT(i)<SOBU—S—APAT(i +1)+1  (1)
Here, SUM_IAPAT(i) represents the accumulated value of all preceding SOBU's IAPAT values, including the corresponding SOBU, that is, SOBU#i, and SOBU_S_APAT(i+1) represents the arrival time of the first AP of SOBU(i+1).
When M SOBUs exist, the accumulated value of IAPATs from the first to the M-th for SOBU(M), the last SOBU, must be greater than the arrival time of the last AP of SOBU(M) and must not be greater than that by 1. IAPAT is assumed to be an integer expressed in units of 1.0, and the initial value of accumulation starts from “0”.SOBU—E—APAT(M)<SUM—IAPAT(M)<SOBU—E—APAT(M) +1  (1)
Here, SUM_IAPAT(M) represents the accumulated value of all preceding IAPATs, including the corresponding SOBU, that is, SOBU#M, and SOBU_E_APAT(M) represents the arrival time of the last AP of SOBU(M).
Referring to FIG. 3, the concepts of the equations 1 and 2 will now be explained in detail.
In FIG. 3, as for SOBU1, the result of accumulation of SOBU1's IAPAT, that is, the value of SOBU1, must be equal to or greater than the arrival time of the first AP of SOBU2, and must not be greater than that by 1. That is, the result of accumulation must be equal to or greater than 1.9, and must be an integer less than 2.9, and therefore, the result must be 2. Accordingly, the IAPAT of SOBU1 is 2.
As for SOBU2, the result of accumulation of IAPATs of SOBU1 and SOBU2 must be the arrival time of the first AP of SOBU3, and must not be greater than that by 1. That is, the result of accumulation must be equal to or greater than 5.5, and must be an integer less than 6.5, and therefore, the result must be 6. Since the IAPAT of SOBU1 is 2, The IAPAT of SOBU 2 is 4.
In this way, IAPATs of the first SOBU and an SOBU located in the middle can be obtained, and because a case in FIG. 4A shows a boundary condition, it needs to be more carefully handled. When the IAPAT of SOBU2 of FIG. 4A is calculated and when the arrival time of the first AP of SOBU3 is the integer 5.0, the result of accumulation to the IAPAT of SOBU2 is not 6 but 5.
In the meantime, as for SOBU6 in FIG. 3, the result of accumulation of the integer part of the arrival time of the first AP of the SOBU6 and the IAPAT to SOBU6 must be greater than the arrival time of the last AP of SOBU6, and must not be greater than that by 1. That is, the result of accumulation must be greater than 10.8, and must be an integer less than or equal to 11.8, and therefore, it must be 11. Since the result of the accumulation of IAPAT to SOBU5 is 10, the IAPAT of SOBU6 is 1.
In this way, the IAPAT of the last SOBU in an SOB can be obtained, and because a case in FIG. 4B shows a boundary condition, it needs to be more carefully handled. When the IAPAT of SOBU(6) of FIG. 4B is calculated and when the arrival time of the last AP of SOBU(6) is an integer value of 11.0, the result of accumulation to the IAPAT of SOBU(6) is not 11 but 12.
In the meantime, when a program is temporarily deleted, this deletion is indicated by a temporary erase (TE) flag, which is promised and admitted in general. Therefore, when a part of a program is temporarily deleted, a stream object is divided into a temporarily deleted stream object and an undeleted stream object, and the TE flag is set in the temporarily deleted stream object. This is for restoring the deleted part later by changing only search information which links a user and data, without actually deleting any data.
However, a method of generating search information in dividing a stream object has not been disclosed. Also, the TE flag only indicates that the temporarily deleted part has been temporarily deleted, which inevitably makes the TE flag reset in later restoration. Reading between those cells may be performed discontinuously because of the reset process.
If a restoration method having a process for resetting the TE flag is used, the restored program will have two or more cells. This means that the original program of FIG. 1 is not restored fully because the operation between cells is not defined, though the temporarily deleted part is restored after the temporary deletion. Since from the standpoint of a user, a restoration after temporary deletion means restoration to the original state, a method of fully restoring a stream object divided due to temporary deletion becomes required.